package com.insurance.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.insurance.common.dto.ProposalDto;
import com.insurance.common.utils.PageUtils;
import com.insurance.entity.ProposalEntity;

import java.util.Map;

/**
 * 投保单
 */
public interface ProposalService extends IService<ProposalEntity> {

    /**
     * 分页查询
     *
     * @param params
     * @return
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 通过用户id查询投保单
     *
     * @param page 分页条件
     * @param userId 用户id
     * @param productName 产品名称
     * @return
     */
    Page<ProposalEntity> findByUserId(Page page, String userId, String productName);

    /**
     * 通过用户id查询投保单
     *
     * @param page 分页条件
     * @param userId 用户id
     * @param productName 产品名称
     * @param state 投保单状态
     * @return
     */
    Page<ProposalEntity> findByUserId(Page page, String userId, String productName, String state);

    /**
     * 通过用户主键查询订单列表
     *
     * @param page 分页条件
     * @param userId 用户主键
     * @param productId 产品主键
     * @param appId 来源
     * @return
     */
    Page<ProposalEntity> queryProposalPageByUserId(Page page, String userId, String productId, String appId);

    /**
     * 接口通过用户主键查询订单列表
     *
     * @param page 分页条件
     * @param userId 用户主键
     * @param productId 产品主键
     * @param appId 来源
     * @return
     */
    Page<ProposalDto> queryIProposalPage(Page page, String userId, String productId, String appId);

    /**
     * 分页查询
     * @param page 分页条件
     * @param proposalEntity 查询条件
     * @return
     */
    Page<ProposalDto> queryProposalDtoPage(Page page, ProposalEntity proposalEntity);

}

